# -*- coding: utf-8 -*-
# @Time    : 2020/2/15 15:43
# @Author  : Weymouth
# @Email   : 261229090@qq.com
# @File    : 迭代器.py
# @Software: PyCharm
# ---------------------------------------------------

# 生成器都是迭代器，迭代器不一定是生成器
#list,tuple,dict,string,iterable(可迭代对象)
# l = [1, 2, 3, 4]
# d = iter(l)     #返回了迭代器对象
# print(d)    #<list_iterator object at 0x00000248A29C0588>

# 什么是迭代器？
# 满足两个条件：
# 1.有iter方法
# 2.有next方法
# print(next(d))

#for 内部三件事
# 1.调用可迭代对象iter方法，返回一个迭代器对象
# 2.不断调用迭代器对象的next方法
# 3.处理stopiteration
# for i in [1, 2, 34]:
#     iter([1, 2, 34])

from collections.abc import Iterator, Iterable
print(isinstance([1, 2], list))
l = [1, 2, 3, 5]
d = iter(l)
print(d)
print(isinstance(l, list))
print(isinstance(l, Iterable))
print(isinstance(l, Iterator))
print(isinstance(d, Iterator))